/**
 * <pre>
 * Title: 		LinksService.java
 * Project: 	itfinoss
 * Author:		pengfangliang
 * Create:	 	2012-12-19 下午06:17:07
 * Copyright: 	Copyright (c) 2012
 * Company:		Shenzhen Helper
 * <pre>
 */
package com.hengpeng.itfinoss.service;

import java.util.List;
import java.util.Map;
import java.util.Set;

import com.hengpeng.common.exception.ServiceResult;
import com.hengpeng.common.persist.entity.AbstractEntity;
import com.hengpeng.common.persist.query.model.Order.OrderType;
import com.hengpeng.itfinbase.persist.Links;

/**
 * <pre>
 *  友情链接服务层接口
 * </pre>
 * @author pengfangliang
 * @version 1.0, 2012-12-19
 */
public interface LinksService
{
	/**
	 * <pre>
	 *  批量删除友情链接
	 * </pre>
	 * @param ids
	 */
	void delete(Set<Object> ids);

	/**
	 * <pre>
	 * 	批量删除对应实体下并且对应字段下对应值相同的数据
	 * </pre>
	 * @param <T>
	 * @param field 匹配字段
	 * @param values 匹配值
	 * @param type 匹配实体
	 * @return
	 */
	public <T extends AbstractEntity> ServiceResult<T> batchRemove(String field, Object[] values, Class<T> type);

	/**
	 * <pre>
	 * 	查询对应实体下并且对应字段下对应值相同的数据
	 * </pre>
	 * @param <T>
	 * @param field 匹配字段
	 * @param values 匹配值
	 * @param type 匹配实体
	 * @return
	 */
	public <T extends AbstractEntity> ServiceResult<List<T>> findListByField(String field, Object[] values, Class<T> clz);

	/**
	 * <pre>
	 * 	根据参数查询链接列表
	 * </pre>
	 * @param pageIndex
	 * @param pageSize
	 * @param sortMap
	 * @param isPass
	 * @param name
	 * @param webType
	 * @param type
	 * @return
	 */
	ServiceResult<List<Links>> findLinksList(Integer pageIndex, Integer pageSize, Map<String, OrderType> sortMap,
			String isPass, String name, String webType, String type);
}
